package com.hb.trade.server.project.notice.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hb.core.pojo.project.notice.entity.NoticeBidSection;
import com.hb.core.pojo.project.section.dto.BidSectionDTO;

import java.util.List;

/**
 * <p>
 * 标段公告中间表 服务类
 * </p>
 *
 * @author zhongdl
 * @since 2021-09-10
 */
public interface NoticeBidSectionService extends IService<NoticeBidSection> {


    /**
     * 根据标段id 查询最近一次公告
     *
     * @param sectionId
     * @return
     */
    NoticeBidSection findLastNoticeBidSection(Long sectionId);

    /**
     * 查询该标段关联的公告信息
     *
     * @param sectionId
     * @return
     */
    List<NoticeBidSection> findAllNoticeBidSectionBySectionId(Long sectionId);

    /**
     * 根据公告id查询标段公告的关联信息
     *
     * @param noticeId
     * @return
     */
    List<NoticeBidSection> listNoticeBidSectionByNoticeId(Long noticeId);

    /**
     * 获取指定标段已发布的公告数量
     *
     * @param sectionId
     * @return
     */
    int findDeployedNoticeBySectionId(Long sectionId);

    /**
     * 查询指定的标段是否已经发布过首次公告
     *
     * @param sectionIds
     * @return
     */
    boolean existsFirstNotice(List<Long> sectionIds);

    /**
     * 更新标段, 公告中间表
     */
    void updateNoticeSections(Long noticeId, List<Long> sectionIds);
    /**
     *
     * @Description: 查询公告的标段列表
     * @Author: zhongdl
     * @Date:2022/3/4 10:44
     * @param noticeId:
     * @return: {@link List< BidSectionDTO> }
     **/
    List<BidSectionDTO> listNoticeBidSection(Long noticeId);
}
